package com.baoyouqun.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

@Data
@TableName(value = "user", autoResultMap = true)
public class User implements Serializable {

    private static final long serialVersionUID = 1L;
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    @ApiModelProperty(value = "名字")
    private String name;

    @ApiModelProperty(value = "头像")
    private String headImg;

    @ApiModelProperty(value = "注册号码")
    private String cellphone;

    @ApiModelProperty(value = "豹子号标识")
    private Boolean baoZhiHao;

    @ApiModelProperty(value = "密码")
    private String password;

    @ApiModelProperty(value = "联系号码")

    @TableField(typeHandler = Fastjson2TypeHandler.class)
    private List<String> extraPhones;

    @ApiModelProperty(value = "性别")
    private String sex;

    @ApiModelProperty(value = "公司名称")
    private String company;

    @ApiModelProperty(value = "职位")
    private String job;

    @ApiModelProperty(value = "教育程度")
    private String education;

    @ApiModelProperty(value = "行业")
    private String industry;

    @ApiModelProperty(value = "地区代码")
    private String cityCode;

    @ApiModelProperty(value = "省")
    private String province;

    @ApiModelProperty(value = "市")
    private String city;

    @ApiModelProperty(value = "区县")
    private String district;

    @ApiModelProperty(value = "详细地址")
    private String address;

    @ApiModelProperty(value = "是否启用 ture为禁用")
    private Boolean disEnable;

    @ApiModelProperty(value = "是否注销 ture为注销")
    private Boolean logout;

    @ApiModelProperty(value = "IM认证")
    private String imUserSig;

    @ApiModelProperty(value = "微信身份昵称")
    private String wxName;

    @ApiModelProperty(value = "微信身份")
    private String wxOpenid;

    @ApiModelProperty(value = "微信会话密钥session_key")
    private String wxSessionKey;

    @ApiModelProperty(value = "微信身份")
    private String unionid;

    @ApiModelProperty(value = "服务号openid")
    private String wxFwhOpenid;

    @ApiModelProperty(value = "session_key过期时间")
    private LocalDateTime wxSessionExpire;

    @ApiModelProperty(value = "是否后台人员")
    private Boolean backWorker;

    private LocalDateTime lastLoginTime;

    @ApiModelProperty(value = "是否公开")
    private Boolean isPublic;

    @ApiModelProperty(value = "是否公开拥有资源")
    private Boolean isPublicResource;

    @ApiModelProperty(value = "经度")
    private Double longitude;

    @ApiModelProperty(value = "纬度")
    private Double latitude;

    @ApiModelProperty(value = "注册时间")
    private LocalDateTime registerTime;

    // 新增用户分数相关字段
    @ApiModelProperty(value = "用户活跃度")
    private Integer activeScore;

    @ApiModelProperty(value = "分数最后更新时间")
    private LocalDateTime scoreUpdateTime;

    @ApiModelProperty(value = "推荐更新时间")
    private LocalDateTime lastRecommendTime;


}
